cosmology string theory c programming software engineer cgi .net yarn crochet j2ee java sewing ejb knit html jsp php development scott wang embroidery software engineer in canada software thread knitting learn java programming c++ physics programmer fabric software development general relativity